const express = require('express');
const router = express.Router();
const PetComment = require('../models/petComment'); // 引入 PetComment 模型
const { authMiddleware } = require('../middleware/auth');

// GET /api/petcomments/recent - 获取最近的评论列表
// 注意：特定路由应该放在参数路由之前，避免路由冲突
router.get('/recent', async (req, res) => {
  try {
    console.log('收到获取最近评论请求');
    console.log('查询参数:', req.query);
    
    const limit = req.query.limit ? parseInt(req.query.limit) : 10; // 每页显示数量
    const page = req.query.page ? parseInt(req.query.page) : 1; // 当前页码
    const search = req.query.search || ''; // 搜索关键词

    console.log('处理后的参数:', { limit, page, search });
    
    const comments = await PetComment.getRecentComments(limit, page, search);
    console.log('获取到的评论数量:', comments.length);
    
    res.json(comments);
  } catch (error) {
    console.error('获取最近评论失败:', error);
    console.error('错误详情:', error.stack);
    res.status(500).json({ message: '获取最近评论失败' });
  }
});

// GET /api/petcomments/:petId - 获取指定宠物的评论列表
router.get('/:petId', async (req, res) => {
  try {
    const petId = req.params.petId;
    const comments = await PetComment.getByPetIdWithUser(petId);
    res.json(comments);
  } catch (error) {
    console.error('获取宠物评论失败:', error);
    res.status(500).json({ message: '获取宠物评论失败' });
  }
});

// POST /api/petcomments - 添加评论
router.post('/', authMiddleware, async (req, res) => {
  try {
    const { pet_id, rating, comment } = req.body;
    const user_id = req.user.id;
    if (!pet_id || !comment) {
      return res.status(400).json({ message: '缺少参数' });
    }
    await PetComment.create({ pet_id, user_id, rating, comment });
    res.json({ message: '评论成功' });
  } catch (error) {
    res.status(500).json({ message: '评论失败' });
  }
});

// 这里可以根据需要添加其他评论相关的路由，例如：
// DELETE /api/petcomments/:commentId - 删除评论

module.exports = router;